home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
L' Effet Pommier 3
/
L'Effet Pommier - Volume 03.iso
/
Graphismes
/
Vidéo
/
MooVer 1.3
/
Bonk.POV
< prev
next >
Wrap
Text File
|
1995-12-02
|
8KB
|
371 lines
// Persistence of Vision Ray tracer Scene description file
// File: Bonk.pov
// Vers: 2 or 3
// Desc: Perpetual hammer bonking some balls...
// A looped animation example for MooVer 1.3
//
// Settings:
// Quality=9
// Antialias=On
// Antialias_Threshold=0.1
// Antialias_Depth=3
// Start_Frame=1
// End_Frame=8
// Final_Frame=9
// Initial_Clock=0
// Final_Clock=1
//
// Date: 11/15/95
// Auth: Eduard [esp] Schwan
//
// ==== Standard POV-Ray Includes
#include "colors.inc" // Standard Color definitions
#include "textures.inc" // Standard Texture definitions
#declare AnimClock = clock // POV-Ray's clock variable (range:0.0 to 1.0)
// twist the entire structure at an angle away from viewer
#declare YAngle = -50
// ==== set viewer's position in the scene
camera
{
location <0.0, 2, -6.0> // position of camera <X Y Z>
direction 1.0*z // which way are we looking <X Y Z>
//sky y // rarely used
up y // which way is +up <X Y Z>
right 4/3*x // which way is +right <X Y Z> and aspect ratio
look_at <0.0, 0.5, 0.0> // point center of view at this point <X Y Z>
}
// ==== create a "spotlight" (directed) light source
light_source
{
0*x // light's position (translated below)
color red 0.8 green 1.0 blue 0.8 // light's color
// looks_like { sphere { 0*x, 1 texture {pigment{color Yellow}finish{ambient 1 diffuse 0}} } }
spotlight // this kind of light source
translate <0, 5, -8> // <x y z> position of light
point_at <0, 0, 0> // direction of spotlight
radius 10 // hotspot (inner, in degrees)
falloff 15 // intensity falloff radius (outer, in degrees)
// enable this line to get soft shadows (and slow down rendering!)
area_light <2, 0, 0> <0, 2, 0> 4, 4 adaptive 0 jitter
}
light_source
{
0*x // light's position (translated below)
color red 1.0 green 0.8 blue 0.8 // light's color
// looks_like { sphere { 0*x, 1 texture {pigment{color Yellow}finish{ambient 1 diffuse 0}} } }
spotlight // this kind of light source
translate <-3, 5, -8> // <x y z> position of light
point_at <-1, 0, 0> // direction of spotlight
radius 10 // hotspot (inner, in degrees)
falloff 15 // intensity falloff radius (outer, in degrees)
// enable this line to get soft shadows (and slow down rendering!)
area_light <2, 0, 0> <0, 2, 0> 4, 4 adaptive 0 jitter
}
// ==== Sky sphere
#declare SkyTex =
texture
{
pigment
{
bozo
turbulence 0.3 omega 0.7
rotate 70*y // across the sky
color_map {[0.7 color rgb <0.6,0.7,1.0>] [0.8 color rgb 0.8] [0.9 color rgb 1.0]}
scale <90, 5, 5>
}
finish {ambient 1 diffuse 0}
}
sphere
{
<0, 0, 0> // center of sphere <X Y Z>
100.0 // radius of sphere
texture { SkyTex }
}
// ==== floor
plane
{
y, // <X Y Z> unit surface normal, vector points "away from surface"
-1.0 // distance from the origin in the direction of the surface normal
texture
{
pigment
{
marble turbulence 0.7 rotate -20*y scale 2
color_map {[0.8 color White] [0.9 color rgb <0.8,0.9,1>] [1.0 color rgb <0.8,0.6,0.3>]}
}
finish {ambient 0.25 reflection 0.2}
}
}
// ==== Supports (Barrel shape)
#declare SupportZOffset = 5
#declare SupportShape =
intersection
{
sphere
{
0*x, 1 scale <1,2,1> // elongate it upwards
}
cylinder // cut it off at top and bottom
{
-1*y, +1*y, 1.1
}
}
#declare SupportTex =
texture
{
pigment { color rgb <0.5,1.0,0.5> } finish {reflection 0.5 metallic specular 0.5}
}
union
{
// supports
object
{
SupportShape
scale 2
texture {SupportTex}
translate -SupportZOffset*z
}
object
{
SupportShape
scale 2
texture {SupportTex}
translate +SupportZOffset*z
}
// move it up above floor
translate 1*y
rotate YAngle*y // angle it
}
// ==== Bonker wheel
#declare BonkHammerShape =
intersection
{
cylinder
{
-1*x, +1*x, 1
}
sphere
{
0*x, 1.25
}
scale <0.4, 0.3, 0.3> // elongaate it
}
union
{
// inner wheel
union
{
torus { 0.60, 0.14 rotate 90*x }
torus { 0.40, 0.16 rotate 90*x }
torus { 0.15, 0.25 rotate 90*x }
sphere { 0*x, 0.2 scale <1,1,4> }
texture
{
pigment
{
radial rotate 90*x frequency 6
color_map
{
[0.0 color rgb 0]
[1.0 color rgb 1]
}
}
finish {specular 0.5 reflection 0.1 metallic}
}
}
// shaft
box
{
-1*(x+y+z), +1*(x+y+z)
scale <0.1, 1.7, 0.1> // skinny and tall
texture { pigment {wood turbulence 0.2 rotate 95*x scale 0.2} finish {specular 0.4 roughness 0.05}}
}
// bottom hammer
object
{
BonkHammerShape
translate -1.7*y
texture {Bright_Bronze}
}
// top hammer
object
{
BonkHammerShape
translate +1.7*y
texture {Bright_Bronze}
}
// rotate on its origin
rotate AnimClock*180*z
// move it up above floor
translate 1*y
rotate YAngle*y // angle it
}
// == balls
// initially move ball away from hammer by a small amount
#declare BallXPosTweak = 0.4
// gee, what distance would a 1 unit diameter ball roll?
#declare BallXSpeed = 3.1415926 // ...
#declare BallTex =
texture
{
pigment
{
gradient x scale 1.3
color_map
{
[0.0 color rgb <0.5, 0.1, 0.1>] [0.1 color rgb <0.9, 0.7, 0.6>] [0.9 color rgb <0.9, 0.7, 0.6>] [1.0 color rgb <0.5, 0.1, 0.1>]
}
}
finish {reflection 0.5 specular 0.2 metallic roughness 0.001}
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(-5+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(-4+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(-3+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(-2+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(-1+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(0+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(+1+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(+2+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(+3+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(+4+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
sphere
{
0*x, 1.0
texture {BallTex}
scale 0.5
rotate -360*z*AnimClock
translate BallXSpeed*x*(+5+AnimClock+BallXPosTweak)
translate -0.5*y // drop down to the floor
rotate YAngle*y // angle it
}
// <eof>